<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div id="app"></div>

    <!-- react 核心库 -->
    <script src="./lib/react.development.js"></script>
    <!-- react 浏览器版 -->
    <script src="./lib/react-dom.development.js"></script>
    <script src="./lib/babel.min.js"></script>

    <script type="text/babel">
      // 组件，每一个组件都需要返回一个html结构的内容
      class App extends React.Component {
        constructor(props) {
          // props 只读的 父组件传递的
          super(props);
          // 定义状态的固定写法
          this.state = {
            count: 1,
          };
          // 修改this指向
          this.clickHandle = this.clickHandle.bind(this);
        }
        clickHandle() {
          // 修改状态固定写法 异步的 可接收第二个参数作为回调
          this.setState(
            {
              // this.props.xx 接收父组件传递的数据
              count: this.state.count + this.props.step,
            },
            () => {
              console.log(this.state.count);
            }
          );
          console.log(this.state.count);
        }
        render() {
          // 取值的固定写法 this.state.xx
          // return <h1 onClick={this.clickHandle.bind(this)}>当前值为:{this.state.count}</h1>;
          // return <h1 onClick={() => this.clickHandle()}>当前值为:{this.state.count}</h1>;
          return <h1 onClick={this.clickHandle}>当前值为:{this.state.count}</h1>;
        }
      }

      // 父传子 使用props 属性
      ReactDOM.render(<App step={2} />, document.getElementById("app"));
    </script>
  </body>
</html>
